// pages/category/index.js
const http = require('../../utils/http.js')
import regeneratorRuntime from '../../lib/runtime/runtime'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    currentIndex:0, //被点击的左侧菜单
    leftList:[], //左侧数组--菜单
    rightList:[], //右侧数组--商品
    scrolltop:0 //右侧滚动顶部距离
  },
  cateList:[], //分类数组 不妨到data里面方便实时处理
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //1.先判断一下本地存储中有没有旧的数据
    // {time:date.now(),data:[]}
    //2.没有旧的数据 直接发送请求
    //3.有旧的数据 没有过期，使用旧的数据
    //
    //读取storge
    const Catelist=wx.getStorageSync('Catelist')
    console.log(Catelist)
    if(!Catelist){
      //不存在，获取新数据
      this.getcatelist()
    }else{
      //有旧数据，定义过期时间 10秒
      if (Date.now()-Catelist.time>1000*600){
        //过期，获取新数据
        this.getcatelist()
      }else{
        console.log("使用旧数据")
        this.cateList=Catelist.data      
        console.log(this.cateList)
        //构造左侧数组 
        let leftList=this.cateList.map(v=>v.cat_name)
        //构造右侧数据
        let rightList=this.cateList[0].children
        this.setData({
          leftList,
          rightList
        })
      }
      
    }
    
  },
  //左侧菜单点击事件
  handleItemTap(e){
    //获取被点击的标题身上的索引
    //给data中的currentIndex赋值
    console.log(e)
    const{index}=e.currentTarget.dataset
    
    //更改右侧商品数据
    let rightList=this.cateList[index].children
    this.setData({   
       currentIndex:index,    
        rightList,
        scrolltop:0 //重新设置右侧scroll-view内容的距离顶部为0
    })
    
  },
   //获取导航数组函数
  async getcatelist(){    
    let url = '/categories';
    let { message: res } = await http.get(url)
    console.log(res) 
    this.cateList=res 
    console.log(this.cateList)
    //构造左侧数组
    let leftList=this.cateList.map(v=>v.cat_name)
    //构造右侧数据
    let rightList=this.cateList[0].children
    this.setData({
     leftList,
     rightList
    })
    //存储到本地数据
    wx.setStorageSync( 'Catelist', {time:Date.now(),data:this.cateList})   
    /*
    http.get(url).then(res=> {
       console.log(res) 
       this.cateList=res.message      
       console.log(this.cateList)
       //构造左侧数组
       let leftList=this.cateList.map(v=>v.cat_name)
       //构造右侧数据
       let rightList=this.cateList[0].children
       this.setData({
        leftList,
        rightList
       })
       //存储到本地数据
       wx.setStorageSync( 'Catelist', {time:Date.now(),data:this.cateList})   

    }) */
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})